(0) Obligation:

Clauses:

goal(Name, Code) :- ','(eq(Name, .(First, Others)), ','(reduce(Others, s(0), First, Reduced), eq(Code, Reduced))).
reduce(X1, s(s(s(s(0)))), X2, []) :- !.
reduce([], X3, X4, []) :- !.
reduce(.(Current, Others), Count, Current, Code) :- ','(vowel_h_w_y(Current), ','(!, reduce(Others, Count, Current, Code))).
reduce(.(Letter, Others), Count, Letter, Code) :- ','(!, reduce(Others, Count, Letter, Code)).
reduce(.(Current, Others), Count, X5, .(Current, Code)) :- reduce(Others, s(Count), Current, Code).
vowel_h_w_y(97).
vowel_h_w_y(101).
vowel_h_w_y(105).
vowel_h_w_y(111).
vowel_h_w_y(117).
vowel_h_w_y(104).
vowel_h_w_y(119).
vowel_h_w_y(121).
eq(X, X).

Query: goal(g,a)

(1) PrologToDTProblemTransformerProof (SOUND transformation)

Built DT problem from termination graph DT10.

(2) Obligation:

Triples:

reduceA(.(97, X1), 97, X2) :- reduceA(X1, 97, X2).
reduceA(.(101, X1), 101, X2) :- reduceA(X1, 101, X2).
reduceA(.(105, X1), 105, X2) :- reduceA(X1, 105, X2).
reduceA(.(111, X1), 111, X2) :- reduceA(X1, 111, X2).
reduceA(.(117, X1), 117, X2) :- reduceA(X1, 117, X2).
reduceA(.(104, X1), 104, X2) :- reduceA(X1, 104, X2).
reduceA(.(119, X1), 119, X2) :- reduceA(X1, 119, X2).
reduceA(.(121, X1), 121, X2) :- reduceA(X1, 121, X2).
reduceA(.(X1, X2), X1, X3) :- reduceA(X2, X1, X3).
reduceA(.(X1, X2), X3, .(X1, X4)) :- reduceB(X2, X1, X4).
reduceB(.(97, X1), 97, X2) :- reduceB(X1, 97, X2).
reduceB(.(101, X1), 101, X2) :- reduceB(X1, 101, X2).
reduceB(.(105, X1), 105, X2) :- reduceB(X1, 105, X2).
reduceB(.(111, X1), 111, X2) :- reduceB(X1, 111, X2).
reduceB(.(117, X1), 117, X2) :- reduceB(X1, 117, X2).
reduceB(.(104, X1), 104, X2) :- reduceB(X1, 104, X2).
reduceB(.(119, X1), 119, X2) :- reduceB(X1, 119, X2).
reduceB(.(121, X1), 121, X2) :- reduceB(X1, 121, X2).
reduceB(.(X1, X2), X1, X3) :- reduceB(X2, X1, X3).
reduceB(.(X1, X2), X3, .(X1, X4)) :- reduceC(X2, X1, X4).
reduceC(.(97, X1), 97, X2) :- reduceC(X1, 97, X2).
reduceC(.(101, X1), 101, X2) :- reduceC(X1, 101, X2).
reduceC(.(105, X1), 105, X2) :- reduceC(X1, 105, X2).
reduceC(.(111, X1), 111, X2) :- reduceC(X1, 111, X2).
reduceC(.(117, X1), 117, X2) :- reduceC(X1, 117, X2).
reduceC(.(104, X1), 104, X2) :- reduceC(X1, 104, X2).
reduceC(.(119, X1), 119, X2) :- reduceC(X1, 119, X2).
reduceC(.(121, X1), 121, X2) :- reduceC(X1, 121, X2).
reduceC(.(X1, X2), X1, X3) :- reduceC(X2, X1, X3).
goalD(.(X1, X2), X3) :- reduceA(X2, X1, X4).

Clauses:

reducecA([], X1, []).
reducecA(.(97, X1), 97, X2) :- reducecA(X1, 97, X2).
reducecA(.(101, X1), 101, X2) :- reducecA(X1, 101, X2).
reducecA(.(105, X1), 105, X2) :- reducecA(X1, 105, X2).
reducecA(.(111, X1), 111, X2) :- reducecA(X1, 111, X2).
reducecA(.(117, X1), 117, X2) :- reducecA(X1, 117, X2).
reducecA(.(104, X1), 104, X2) :- reducecA(X1, 104, X2).
reducecA(.(119, X1), 119, X2) :- reducecA(X1, 119, X2).
reducecA(.(121, X1), 121, X2) :- reducecA(X1, 121, X2).
reducecA(.(X1, X2), X1, X3) :- reducecA(X2, X1, X3).
reducecA(.(X1, X2), X3, .(X1, X4)) :- reducecB(X2, X1, X4).
reducecB([], X1, []).
reducecB(.(97, X1), 97, X2) :- reducecB(X1, 97, X2).
reducecB(.(101, X1), 101, X2) :- reducecB(X1, 101, X2).
reducecB(.(105, X1), 105, X2) :- reducecB(X1, 105, X2).
reducecB(.(111, X1), 111, X2) :- reducecB(X1, 111, X2).
reducecB(.(117, X1), 117, X2) :- reducecB(X1, 117, X2).
reducecB(.(104, X1), 104, X2) :- reducecB(X1, 104, X2).
reducecB(.(119, X1), 119, X2) :- reducecB(X1, 119, X2).
reducecB(.(121, X1), 121, X2) :- reducecB(X1, 121, X2).
reducecB(.(X1, X2), X1, X3) :- reducecB(X2, X1, X3).
reducecB(.(X1, X2), X3, .(X1, X4)) :- reducecC(X2, X1, X4).
reducecC([], X1, []).
reducecC(.(97, X1), 97, X2) :- reducecC(X1, 97, X2).
reducecC(.(101, X1), 101, X2) :- reducecC(X1, 101, X2).
reducecC(.(105, X1), 105, X2) :- reducecC(X1, 105, X2).
reducecC(.(111, X1), 111, X2) :- reducecC(X1, 111, X2).
reducecC(.(117, X1), 117, X2) :- reducecC(X1, 117, X2).
reducecC(.(104, X1), 104, X2) :- reducecC(X1, 104, X2).
reducecC(.(119, X1), 119, X2) :- reducecC(X1, 119, X2).
reducecC(.(121, X1), 121, X2) :- reducecC(X1, 121, X2).
reducecC(.(X1, X2), X1, X3) :- reducecC(X2, X1, X3).
reducecC(.(X1, X2), X3, .(X1, [])).

Afs:

goalD(x1, x2)  =  goalD(x1)

(3) TriplesToPiDPProof (SOUND transformation)

We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes:
goalD_in: (b,f)
reduceA_in: (b,b,f)
reduceB_in: (b,b,f)
reduceC_in: (b,b,f)
Transforming TRIPLES into the following Term Rewriting System:
Pi DP problem:
The TRS P consists of the following rules:

GOALD_IN_GA(.(X1, X2), X3) → U30_GA(X1, X2, X3, reduceA_in_gga(X2, X1, X4))
GOALD_IN_GA(.(X1, X2), X3) → REDUCEA_IN_GGA(X2, X1, X4)
REDUCEA_IN_GGA(.(97, X1), 97, X2) → U1_GGA(X1, X2, reduceA_in_gga(X1, 97, X2))
REDUCEA_IN_GGA(.(97, X1), 97, X2) → REDUCEA_IN_GGA(X1, 97, X2)
REDUCEA_IN_GGA(.(101, X1), 101, X2) → U2_GGA(X1, X2, reduceA_in_gga(X1, 101, X2))
REDUCEA_IN_GGA(.(101, X1), 101, X2) → REDUCEA_IN_GGA(X1, 101, X2)
REDUCEA_IN_GGA(.(105, X1), 105, X2) → U3_GGA(X1, X2, reduceA_in_gga(X1, 105, X2))
REDUCEA_IN_GGA(.(105, X1), 105, X2) → REDUCEA_IN_GGA(X1, 105, X2)
REDUCEA_IN_GGA(.(111, X1), 111, X2) → U4_GGA(X1, X2, reduceA_in_gga(X1, 111, X2))
REDUCEA_IN_GGA(.(111, X1), 111, X2) → REDUCEA_IN_GGA(X1, 111, X2)
REDUCEA_IN_GGA(.(117, X1), 117, X2) → U5_GGA(X1, X2, reduceA_in_gga(X1, 117, X2))
REDUCEA_IN_GGA(.(117, X1), 117, X2) → REDUCEA_IN_GGA(X1, 117, X2)
REDUCEA_IN_GGA(.(104, X1), 104, X2) → U6_GGA(X1, X2, reduceA_in_gga(X1, 104, X2))
REDUCEA_IN_GGA(.(104, X1), 104, X2) → REDUCEA_IN_GGA(X1, 104, X2)
REDUCEA_IN_GGA(.(119, X1), 119, X2) → U7_GGA(X1, X2, reduceA_in_gga(X1, 119, X2))
REDUCEA_IN_GGA(.(119, X1), 119, X2) → REDUCEA_IN_GGA(X1, 119, X2)
REDUCEA_IN_GGA(.(121, X1), 121, X2) → U8_GGA(X1, X2, reduceA_in_gga(X1, 121, X2))
REDUCEA_IN_GGA(.(121, X1), 121, X2) → REDUCEA_IN_GGA(X1, 121, X2)
REDUCEA_IN_GGA(.(X1, X2), X1, X3) → U9_GGA(X1, X2, X3, reduceA_in_gga(X2, X1, X3))
REDUCEA_IN_GGA(.(X1, X2), X1, X3) → REDUCEA_IN_GGA(X2, X1, X3)
REDUCEA_IN_GGA(.(X1, X2), X3, .(X1, X4)) → U10_GGA(X1, X2, X3, X4, reduceB_in_gga(X2, X1, X4))
REDUCEA_IN_GGA(.(X1, X2), X3, .(X1, X4)) → REDUCEB_IN_GGA(X2, X1, X4)
REDUCEB_IN_GGA(.(97, X1), 97, X2) → U11_GGA(X1, X2, reduceB_in_gga(X1, 97, X2))
REDUCEB_IN_GGA(.(97, X1), 97, X2) → REDUCEB_IN_GGA(X1, 97, X2)
REDUCEB_IN_GGA(.(101, X1), 101, X2) → U12_GGA(X1, X2, reduceB_in_gga(X1, 101, X2))
REDUCEB_IN_GGA(.(101, X1), 101, X2) → REDUCEB_IN_GGA(X1, 101, X2)
REDUCEB_IN_GGA(.(105, X1), 105, X2) → U13_GGA(X1, X2, reduceB_in_gga(X1, 105, X2))
REDUCEB_IN_GGA(.(105, X1), 105, X2) → REDUCEB_IN_GGA(X1, 105, X2)
REDUCEB_IN_GGA(.(111, X1), 111, X2) → U14_GGA(X1, X2, reduceB_in_gga(X1, 111, X2))
REDUCEB_IN_GGA(.(111, X1), 111, X2) → REDUCEB_IN_GGA(X1, 111, X2)
REDUCEB_IN_GGA(.(117, X1), 117, X2) → U15_GGA(X1, X2, reduceB_in_gga(X1, 117, X2))
REDUCEB_IN_GGA(.(117, X1), 117, X2) → REDUCEB_IN_GGA(X1, 117, X2)
REDUCEB_IN_GGA(.(104, X1), 104, X2) → U16_GGA(X1, X2, reduceB_in_gga(X1, 104, X2))
REDUCEB_IN_GGA(.(104, X1), 104, X2) → REDUCEB_IN_GGA(X1, 104, X2)
REDUCEB_IN_GGA(.(119, X1), 119, X2) → U17_GGA(X1, X2, reduceB_in_gga(X1, 119, X2))
REDUCEB_IN_GGA(.(119, X1), 119, X2) → REDUCEB_IN_GGA(X1, 119, X2)
REDUCEB_IN_GGA(.(121, X1), 121, X2) → U18_GGA(X1, X2, reduceB_in_gga(X1, 121, X2))
REDUCEB_IN_GGA(.(121, X1), 121, X2) → REDUCEB_IN_GGA(X1, 121, X2)
REDUCEB_IN_GGA(.(X1, X2), X1, X3) → U19_GGA(X1, X2, X3, reduceB_in_gga(X2, X1, X3))
REDUCEB_IN_GGA(.(X1, X2), X1, X3) → REDUCEB_IN_GGA(X2, X1, X3)
REDUCEB_IN_GGA(.(X1, X2), X3, .(X1, X4)) → U20_GGA(X1, X2, X3, X4, reduceC_in_gga(X2, X1, X4))
REDUCEB_IN_GGA(.(X1, X2), X3, .(X1, X4)) → REDUCEC_IN_GGA(X2, X1, X4)
REDUCEC_IN_GGA(.(97, X1), 97, X2) → U21_GGA(X1, X2, reduceC_in_gga(X1, 97, X2))
REDUCEC_IN_GGA(.(97, X1), 97, X2) → REDUCEC_IN_GGA(X1, 97, X2)
REDUCEC_IN_GGA(.(101, X1), 101, X2) → U22_GGA(X1, X2, reduceC_in_gga(X1, 101, X2))
REDUCEC_IN_GGA(.(101, X1), 101, X2) → REDUCEC_IN_GGA(X1, 101, X2)
REDUCEC_IN_GGA(.(105, X1), 105, X2) → U23_GGA(X1, X2, reduceC_in_gga(X1, 105, X2))
REDUCEC_IN_GGA(.(105, X1), 105, X2) → REDUCEC_IN_GGA(X1, 105, X2)
REDUCEC_IN_GGA(.(111, X1), 111, X2) → U24_GGA(X1, X2, reduceC_in_gga(X1, 111, X2))
REDUCEC_IN_GGA(.(111, X1), 111, X2) → REDUCEC_IN_GGA(X1, 111, X2)
REDUCEC_IN_GGA(.(117, X1), 117, X2) → U25_GGA(X1, X2, reduceC_in_gga(X1, 117, X2))
REDUCEC_IN_GGA(.(117, X1), 117, X2) → REDUCEC_IN_GGA(X1, 117, X2)
REDUCEC_IN_GGA(.(104, X1), 104, X2) → U26_GGA(X1, X2, reduceC_in_gga(X1, 104, X2))
REDUCEC_IN_GGA(.(104, X1), 104, X2) → REDUCEC_IN_GGA(X1, 104, X2)
REDUCEC_IN_GGA(.(119, X1), 119, X2) → U27_GGA(X1, X2, reduceC_in_gga(X1, 119, X2))
REDUCEC_IN_GGA(.(119, X1), 119, X2) → REDUCEC_IN_GGA(X1, 119, X2)
REDUCEC_IN_GGA(.(121, X1), 121, X2) → U28_GGA(X1, X2, reduceC_in_gga(X1, 121, X2))
REDUCEC_IN_GGA(.(121, X1), 121, X2) → REDUCEC_IN_GGA(X1, 121, X2)
REDUCEC_IN_GGA(.(X1, X2), X1, X3) → U29_GGA(X1, X2, X3, reduceC_in_gga(X2, X1, X3))
REDUCEC_IN_GGA(.(X1, X2), X1, X3) → REDUCEC_IN_GGA(X2, X1, X3)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
reduceA_in_gga(x1, x2, x3)  =  reduceA_in_gga(x1, x2)
97  =  97
101  =  101
105  =  105
111  =  111
117  =  117
104  =  104
119  =  119
121  =  121
reduceB_in_gga(x1, x2, x3)  =  reduceB_in_gga(x1, x2)
reduceC_in_gga(x1, x2, x3)  =  reduceC_in_gga(x1, x2)
GOALD_IN_GA(x1, x2)  =  GOALD_IN_GA(x1)
U30_GA(x1, x2, x3, x4)  =  U30_GA(x1, x2, x4)
REDUCEA_IN_GGA(x1, x2, x3)  =  REDUCEA_IN_GGA(x1, x2)
U1_GGA(x1, x2, x3)  =  U1_GGA(x1, x3)
U2_GGA(x1, x2, x3)  =  U2_GGA(x1, x3)
U3_GGA(x1, x2, x3)  =  U3_GGA(x1, x3)
U4_GGA(x1, x2, x3)  =  U4_GGA(x1, x3)
U5_GGA(x1, x2, x3)  =  U5_GGA(x1, x3)
U6_GGA(x1, x2, x3)  =  U6_GGA(x1, x3)
U7_GGA(x1, x2, x3)  =  U7_GGA(x1, x3)
U8_GGA(x1, x2, x3)  =  U8_GGA(x1, x3)
U9_GGA(x1, x2, x3, x4)  =  U9_GGA(x1, x2, x4)
U10_GGA(x1, x2, x3, x4, x5)  =  U10_GGA(x1, x2, x3, x5)
REDUCEB_IN_GGA(x1, x2, x3)  =  REDUCEB_IN_GGA(x1, x2)
U11_GGA(x1, x2, x3)  =  U11_GGA(x1, x3)
U12_GGA(x1, x2, x3)  =  U12_GGA(x1, x3)
U13_GGA(x1, x2, x3)  =  U13_GGA(x1, x3)
U14_GGA(x1, x2, x3)  =  U14_GGA(x1, x3)
U15_GGA(x1, x2, x3)  =  U15_GGA(x1, x3)
U16_GGA(x1, x2, x3)  =  U16_GGA(x1, x3)
U17_GGA(x1, x2, x3)  =  U17_GGA(x1, x3)
U18_GGA(x1, x2, x3)  =  U18_GGA(x1, x3)
U19_GGA(x1, x2, x3, x4)  =  U19_GGA(x1, x2, x4)
U20_GGA(x1, x2, x3, x4, x5)  =  U20_GGA(x1, x2, x3, x5)
REDUCEC_IN_GGA(x1, x2, x3)  =  REDUCEC_IN_GGA(x1, x2)
U21_GGA(x1, x2, x3)  =  U21_GGA(x1, x3)
U22_GGA(x1, x2, x3)  =  U22_GGA(x1, x3)
U23_GGA(x1, x2, x3)  =  U23_GGA(x1, x3)
U24_GGA(x1, x2, x3)  =  U24_GGA(x1, x3)
U25_GGA(x1, x2, x3)  =  U25_GGA(x1, x3)
U26_GGA(x1, x2, x3)  =  U26_GGA(x1, x3)
U27_GGA(x1, x2, x3)  =  U27_GGA(x1, x3)
U28_GGA(x1, x2, x3)  =  U28_GGA(x1, x3)
U29_GGA(x1, x2, x3, x4)  =  U29_GGA(x1, x2, x4)

We have to consider all (P,R,Pi)-chains

Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES

(4) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

GOALD_IN_GA(.(X1, X2), X3) → U30_GA(X1, X2, X3, reduceA_in_gga(X2, X1, X4))
GOALD_IN_GA(.(X1, X2), X3) → REDUCEA_IN_GGA(X2, X1, X4)
REDUCEA_IN_GGA(.(97, X1), 97, X2) → U1_GGA(X1, X2, reduceA_in_gga(X1, 97, X2))
REDUCEA_IN_GGA(.(97, X1), 97, X2) → REDUCEA_IN_GGA(X1, 97, X2)
REDUCEA_IN_GGA(.(101, X1), 101, X2) → U2_GGA(X1, X2, reduceA_in_gga(X1, 101, X2))
REDUCEA_IN_GGA(.(101, X1), 101, X2) → REDUCEA_IN_GGA(X1, 101, X2)
REDUCEA_IN_GGA(.(105, X1), 105, X2) → U3_GGA(X1, X2, reduceA_in_gga(X1, 105, X2))
REDUCEA_IN_GGA(.(105, X1), 105, X2) → REDUCEA_IN_GGA(X1, 105, X2)
REDUCEA_IN_GGA(.(111, X1), 111, X2) → U4_GGA(X1, X2, reduceA_in_gga(X1, 111, X2))
REDUCEA_IN_GGA(.(111, X1), 111, X2) → REDUCEA_IN_GGA(X1, 111, X2)
REDUCEA_IN_GGA(.(117, X1), 117, X2) → U5_GGA(X1, X2, reduceA_in_gga(X1, 117, X2))
REDUCEA_IN_GGA(.(117, X1), 117, X2) → REDUCEA_IN_GGA(X1, 117, X2)
REDUCEA_IN_GGA(.(104, X1), 104, X2) → U6_GGA(X1, X2, reduceA_in_gga(X1, 104, X2))
REDUCEA_IN_GGA(.(104, X1), 104, X2) → REDUCEA_IN_GGA(X1, 104, X2)
REDUCEA_IN_GGA(.(119, X1), 119, X2) → U7_GGA(X1, X2, reduceA_in_gga(X1, 119, X2))
REDUCEA_IN_GGA(.(119, X1), 119, X2) → REDUCEA_IN_GGA(X1, 119, X2)
REDUCEA_IN_GGA(.(121, X1), 121, X2) → U8_GGA(X1, X2, reduceA_in_gga(X1, 121, X2))
REDUCEA_IN_GGA(.(121, X1), 121, X2) → REDUCEA_IN_GGA(X1, 121, X2)
REDUCEA_IN_GGA(.(X1, X2), X1, X3) → U9_GGA(X1, X2, X3, reduceA_in_gga(X2, X1, X3))
REDUCEA_IN_GGA(.(X1, X2), X1, X3) → REDUCEA_IN_GGA(X2, X1, X3)
REDUCEA_IN_GGA(.(X1, X2), X3, .(X1, X4)) → U10_GGA(X1, X2, X3, X4, reduceB_in_gga(X2, X1, X4))
REDUCEA_IN_GGA(.(X1, X2), X3, .(X1, X4)) → REDUCEB_IN_GGA(X2, X1, X4)
REDUCEB_IN_GGA(.(97, X1), 97, X2) → U11_GGA(X1, X2, reduceB_in_gga(X1, 97, X2))
REDUCEB_IN_GGA(.(97, X1), 97, X2) → REDUCEB_IN_GGA(X1, 97, X2)
REDUCEB_IN_GGA(.(101, X1), 101, X2) → U12_GGA(X1, X2, reduceB_in_gga(X1, 101, X2))
REDUCEB_IN_GGA(.(101, X1), 101, X2) → REDUCEB_IN_GGA(X1, 101, X2)
REDUCEB_IN_GGA(.(105, X1), 105, X2) → U13_GGA(X1, X2, reduceB_in_gga(X1, 105, X2))
REDUCEB_IN_GGA(.(105, X1), 105, X2) → REDUCEB_IN_GGA(X1, 105, X2)
REDUCEB_IN_GGA(.(111, X1), 111, X2) → U14_GGA(X1, X2, reduceB_in_gga(X1, 111, X2))
REDUCEB_IN_GGA(.(111, X1), 111, X2) → REDUCEB_IN_GGA(X1, 111, X2)
REDUCEB_IN_GGA(.(117, X1), 117, X2) → U15_GGA(X1, X2, reduceB_in_gga(X1, 117, X2))
REDUCEB_IN_GGA(.(117, X1), 117, X2) → REDUCEB_IN_GGA(X1, 117, X2)
REDUCEB_IN_GGA(.(104, X1), 104, X2) → U16_GGA(X1, X2, reduceB_in_gga(X1, 104, X2))
REDUCEB_IN_GGA(.(104, X1), 104, X2) → REDUCEB_IN_GGA(X1, 104, X2)
REDUCEB_IN_GGA(.(119, X1), 119, X2) → U17_GGA(X1, X2, reduceB_in_gga(X1, 119, X2))
REDUCEB_IN_GGA(.(119, X1), 119, X2) → REDUCEB_IN_GGA(X1, 119, X2)
REDUCEB_IN_GGA(.(121, X1), 121, X2) → U18_GGA(X1, X2, reduceB_in_gga(X1, 121, X2))
REDUCEB_IN_GGA(.(121, X1), 121, X2) → REDUCEB_IN_GGA(X1, 121, X2)
REDUCEB_IN_GGA(.(X1, X2), X1, X3) → U19_GGA(X1, X2, X3, reduceB_in_gga(X2, X1, X3))
REDUCEB_IN_GGA(.(X1, X2), X1, X3) → REDUCEB_IN_GGA(X2, X1, X3)
REDUCEB_IN_GGA(.(X1, X2), X3, .(X1, X4)) → U20_GGA(X1, X2, X3, X4, reduceC_in_gga(X2, X1, X4))
REDUCEB_IN_GGA(.(X1, X2), X3, .(X1, X4)) → REDUCEC_IN_GGA(X2, X1, X4)
REDUCEC_IN_GGA(.(97, X1), 97, X2) → U21_GGA(X1, X2, reduceC_in_gga(X1, 97, X2))
REDUCEC_IN_GGA(.(97, X1), 97, X2) → REDUCEC_IN_GGA(X1, 97, X2)
REDUCEC_IN_GGA(.(101, X1), 101, X2) → U22_GGA(X1, X2, reduceC_in_gga(X1, 101, X2))
REDUCEC_IN_GGA(.(101, X1), 101, X2) → REDUCEC_IN_GGA(X1, 101, X2)
REDUCEC_IN_GGA(.(105, X1), 105, X2) → U23_GGA(X1, X2, reduceC_in_gga(X1, 105, X2))
REDUCEC_IN_GGA(.(105, X1), 105, X2) → REDUCEC_IN_GGA(X1, 105, X2)
REDUCEC_IN_GGA(.(111, X1), 111, X2) → U24_GGA(X1, X2, reduceC_in_gga(X1, 111, X2))
REDUCEC_IN_GGA(.(111, X1), 111, X2) → REDUCEC_IN_GGA(X1, 111, X2)
REDUCEC_IN_GGA(.(117, X1), 117, X2) → U25_GGA(X1, X2, reduceC_in_gga(X1, 117, X2))
REDUCEC_IN_GGA(.(117, X1), 117, X2) → REDUCEC_IN_GGA(X1, 117, X2)
REDUCEC_IN_GGA(.(104, X1), 104, X2) → U26_GGA(X1, X2, reduceC_in_gga(X1, 104, X2))
REDUCEC_IN_GGA(.(104, X1), 104, X2) → REDUCEC_IN_GGA(X1, 104, X2)
REDUCEC_IN_GGA(.(119, X1), 119, X2) → U27_GGA(X1, X2, reduceC_in_gga(X1, 119, X2))
REDUCEC_IN_GGA(.(119, X1), 119, X2) → REDUCEC_IN_GGA(X1, 119, X2)
REDUCEC_IN_GGA(.(121, X1), 121, X2) → U28_GGA(X1, X2, reduceC_in_gga(X1, 121, X2))
REDUCEC_IN_GGA(.(121, X1), 121, X2) → REDUCEC_IN_GGA(X1, 121, X2)
REDUCEC_IN_GGA(.(X1, X2), X1, X3) → U29_GGA(X1, X2, X3, reduceC_in_gga(X2, X1, X3))
REDUCEC_IN_GGA(.(X1, X2), X1, X3) → REDUCEC_IN_GGA(X2, X1, X3)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
reduceA_in_gga(x1, x2, x3)  =  reduceA_in_gga(x1, x2)
97  =  97
101  =  101
105  =  105
111  =  111
117  =  117
104  =  104
119  =  119
121  =  121
reduceB_in_gga(x1, x2, x3)  =  reduceB_in_gga(x1, x2)
reduceC_in_gga(x1, x2, x3)  =  reduceC_in_gga(x1, x2)
GOALD_IN_GA(x1, x2)  =  GOALD_IN_GA(x1)
U30_GA(x1, x2, x3, x4)  =  U30_GA(x1, x2, x4)
REDUCEA_IN_GGA(x1, x2, x3)  =  REDUCEA_IN_GGA(x1, x2)
U1_GGA(x1, x2, x3)  =  U1_GGA(x1, x3)
U2_GGA(x1, x2, x3)  =  U2_GGA(x1, x3)
U3_GGA(x1, x2, x3)  =  U3_GGA(x1, x3)
U4_GGA(x1, x2, x3)  =  U4_GGA(x1, x3)
U5_GGA(x1, x2, x3)  =  U5_GGA(x1, x3)
U6_GGA(x1, x2, x3)  =  U6_GGA(x1, x3)
U7_GGA(x1, x2, x3)  =  U7_GGA(x1, x3)
U8_GGA(x1, x2, x3)  =  U8_GGA(x1, x3)
U9_GGA(x1, x2, x3, x4)  =  U9_GGA(x1, x2, x4)
U10_GGA(x1, x2, x3, x4, x5)  =  U10_GGA(x1, x2, x3, x5)
REDUCEB_IN_GGA(x1, x2, x3)  =  REDUCEB_IN_GGA(x1, x2)
U11_GGA(x1, x2, x3)  =  U11_GGA(x1, x3)
U12_GGA(x1, x2, x3)  =  U12_GGA(x1, x3)
U13_GGA(x1, x2, x3)  =  U13_GGA(x1, x3)
U14_GGA(x1, x2, x3)  =  U14_GGA(x1, x3)
U15_GGA(x1, x2, x3)  =  U15_GGA(x1, x3)
U16_GGA(x1, x2, x3)  =  U16_GGA(x1, x3)
U17_GGA(x1, x2, x3)  =  U17_GGA(x1, x3)
U18_GGA(x1, x2, x3)  =  U18_GGA(x1, x3)
U19_GGA(x1, x2, x3, x4)  =  U19_GGA(x1, x2, x4)
U20_GGA(x1, x2, x3, x4, x5)  =  U20_GGA(x1, x2, x3, x5)
REDUCEC_IN_GGA(x1, x2, x3)  =  REDUCEC_IN_GGA(x1, x2)
U21_GGA(x1, x2, x3)  =  U21_GGA(x1, x3)
U22_GGA(x1, x2, x3)  =  U22_GGA(x1, x3)
U23_GGA(x1, x2, x3)  =  U23_GGA(x1, x3)
U24_GGA(x1, x2, x3)  =  U24_GGA(x1, x3)
U25_GGA(x1, x2, x3)  =  U25_GGA(x1, x3)
U26_GGA(x1, x2, x3)  =  U26_GGA(x1, x3)
U27_GGA(x1, x2, x3)  =  U27_GGA(x1, x3)
U28_GGA(x1, x2, x3)  =  U28_GGA(x1, x3)
U29_GGA(x1, x2, x3, x4)  =  U29_GGA(x1, x2, x4)

We have to consider all (P,R,Pi)-chains

(5) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 33 less nodes.

(6) Complex Obligation (AND)

(7) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

REDUCEC_IN_GGA(.(X1, X2), X1, X3) → REDUCEC_IN_GGA(X2, X1, X3)
REDUCEC_IN_GGA(.(97, X1), 97, X2) → REDUCEC_IN_GGA(X1, 97, X2)
REDUCEC_IN_GGA(.(101, X1), 101, X2) → REDUCEC_IN_GGA(X1, 101, X2)
REDUCEC_IN_GGA(.(105, X1), 105, X2) → REDUCEC_IN_GGA(X1, 105, X2)
REDUCEC_IN_GGA(.(111, X1), 111, X2) → REDUCEC_IN_GGA(X1, 111, X2)
REDUCEC_IN_GGA(.(117, X1), 117, X2) → REDUCEC_IN_GGA(X1, 117, X2)
REDUCEC_IN_GGA(.(104, X1), 104, X2) → REDUCEC_IN_GGA(X1, 104, X2)
REDUCEC_IN_GGA(.(119, X1), 119, X2) → REDUCEC_IN_GGA(X1, 119, X2)
REDUCEC_IN_GGA(.(121, X1), 121, X2) → REDUCEC_IN_GGA(X1, 121, X2)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
97  =  97
101  =  101
105  =  105
111  =  111
117  =  117
104  =  104
119  =  119
121  =  121
REDUCEC_IN_GGA(x1, x2, x3)  =  REDUCEC_IN_GGA(x1, x2)

We have to consider all (P,R,Pi)-chains

(8) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(9) Obligation:

Q DP problem:
The TRS P consists of the following rules:

REDUCEC_IN_GGA(.(X1, X2), X1) → REDUCEC_IN_GGA(X2, X1)
REDUCEC_IN_GGA(.(97, X1), 97) → REDUCEC_IN_GGA(X1, 97)
REDUCEC_IN_GGA(.(101, X1), 101) → REDUCEC_IN_GGA(X1, 101)
REDUCEC_IN_GGA(.(105, X1), 105) → REDUCEC_IN_GGA(X1, 105)
REDUCEC_IN_GGA(.(111, X1), 111) → REDUCEC_IN_GGA(X1, 111)
REDUCEC_IN_GGA(.(117, X1), 117) → REDUCEC_IN_GGA(X1, 117)
REDUCEC_IN_GGA(.(104, X1), 104) → REDUCEC_IN_GGA(X1, 104)
REDUCEC_IN_GGA(.(119, X1), 119) → REDUCEC_IN_GGA(X1, 119)
REDUCEC_IN_GGA(.(121, X1), 121) → REDUCEC_IN_GGA(X1, 121)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(10) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • REDUCEC_IN_GGA(.(X1, X2), X1) → REDUCEC_IN_GGA(X2, X1)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEC_IN_GGA(.(97, X1), 97) → REDUCEC_IN_GGA(X1, 97)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEC_IN_GGA(.(101, X1), 101) → REDUCEC_IN_GGA(X1, 101)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEC_IN_GGA(.(105, X1), 105) → REDUCEC_IN_GGA(X1, 105)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEC_IN_GGA(.(111, X1), 111) → REDUCEC_IN_GGA(X1, 111)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEC_IN_GGA(.(117, X1), 117) → REDUCEC_IN_GGA(X1, 117)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEC_IN_GGA(.(104, X1), 104) → REDUCEC_IN_GGA(X1, 104)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEC_IN_GGA(.(119, X1), 119) → REDUCEC_IN_GGA(X1, 119)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEC_IN_GGA(.(121, X1), 121) → REDUCEC_IN_GGA(X1, 121)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

(11) YES

(12) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

REDUCEB_IN_GGA(.(X1, X2), X1, X3) → REDUCEB_IN_GGA(X2, X1, X3)
REDUCEB_IN_GGA(.(97, X1), 97, X2) → REDUCEB_IN_GGA(X1, 97, X2)
REDUCEB_IN_GGA(.(101, X1), 101, X2) → REDUCEB_IN_GGA(X1, 101, X2)
REDUCEB_IN_GGA(.(105, X1), 105, X2) → REDUCEB_IN_GGA(X1, 105, X2)
REDUCEB_IN_GGA(.(111, X1), 111, X2) → REDUCEB_IN_GGA(X1, 111, X2)
REDUCEB_IN_GGA(.(117, X1), 117, X2) → REDUCEB_IN_GGA(X1, 117, X2)
REDUCEB_IN_GGA(.(104, X1), 104, X2) → REDUCEB_IN_GGA(X1, 104, X2)
REDUCEB_IN_GGA(.(119, X1), 119, X2) → REDUCEB_IN_GGA(X1, 119, X2)
REDUCEB_IN_GGA(.(121, X1), 121, X2) → REDUCEB_IN_GGA(X1, 121, X2)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
97  =  97
101  =  101
105  =  105
111  =  111
117  =  117
104  =  104
119  =  119
121  =  121
REDUCEB_IN_GGA(x1, x2, x3)  =  REDUCEB_IN_GGA(x1, x2)

We have to consider all (P,R,Pi)-chains

(13) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(14) Obligation:

Q DP problem:
The TRS P consists of the following rules:

REDUCEB_IN_GGA(.(X1, X2), X1) → REDUCEB_IN_GGA(X2, X1)
REDUCEB_IN_GGA(.(97, X1), 97) → REDUCEB_IN_GGA(X1, 97)
REDUCEB_IN_GGA(.(101, X1), 101) → REDUCEB_IN_GGA(X1, 101)
REDUCEB_IN_GGA(.(105, X1), 105) → REDUCEB_IN_GGA(X1, 105)
REDUCEB_IN_GGA(.(111, X1), 111) → REDUCEB_IN_GGA(X1, 111)
REDUCEB_IN_GGA(.(117, X1), 117) → REDUCEB_IN_GGA(X1, 117)
REDUCEB_IN_GGA(.(104, X1), 104) → REDUCEB_IN_GGA(X1, 104)
REDUCEB_IN_GGA(.(119, X1), 119) → REDUCEB_IN_GGA(X1, 119)
REDUCEB_IN_GGA(.(121, X1), 121) → REDUCEB_IN_GGA(X1, 121)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(15) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • REDUCEB_IN_GGA(.(X1, X2), X1) → REDUCEB_IN_GGA(X2, X1)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEB_IN_GGA(.(97, X1), 97) → REDUCEB_IN_GGA(X1, 97)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEB_IN_GGA(.(101, X1), 101) → REDUCEB_IN_GGA(X1, 101)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEB_IN_GGA(.(105, X1), 105) → REDUCEB_IN_GGA(X1, 105)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEB_IN_GGA(.(111, X1), 111) → REDUCEB_IN_GGA(X1, 111)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEB_IN_GGA(.(117, X1), 117) → REDUCEB_IN_GGA(X1, 117)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEB_IN_GGA(.(104, X1), 104) → REDUCEB_IN_GGA(X1, 104)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEB_IN_GGA(.(119, X1), 119) → REDUCEB_IN_GGA(X1, 119)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEB_IN_GGA(.(121, X1), 121) → REDUCEB_IN_GGA(X1, 121)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

(16) YES

(17) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

REDUCEA_IN_GGA(.(X1, X2), X1, X3) → REDUCEA_IN_GGA(X2, X1, X3)
REDUCEA_IN_GGA(.(97, X1), 97, X2) → REDUCEA_IN_GGA(X1, 97, X2)
REDUCEA_IN_GGA(.(101, X1), 101, X2) → REDUCEA_IN_GGA(X1, 101, X2)
REDUCEA_IN_GGA(.(105, X1), 105, X2) → REDUCEA_IN_GGA(X1, 105, X2)
REDUCEA_IN_GGA(.(111, X1), 111, X2) → REDUCEA_IN_GGA(X1, 111, X2)
REDUCEA_IN_GGA(.(117, X1), 117, X2) → REDUCEA_IN_GGA(X1, 117, X2)
REDUCEA_IN_GGA(.(104, X1), 104, X2) → REDUCEA_IN_GGA(X1, 104, X2)
REDUCEA_IN_GGA(.(119, X1), 119, X2) → REDUCEA_IN_GGA(X1, 119, X2)
REDUCEA_IN_GGA(.(121, X1), 121, X2) → REDUCEA_IN_GGA(X1, 121, X2)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
97  =  97
101  =  101
105  =  105
111  =  111
117  =  117
104  =  104
119  =  119
121  =  121
REDUCEA_IN_GGA(x1, x2, x3)  =  REDUCEA_IN_GGA(x1, x2)

We have to consider all (P,R,Pi)-chains

(18) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(19) Obligation:

Q DP problem:
The TRS P consists of the following rules:

REDUCEA_IN_GGA(.(X1, X2), X1) → REDUCEA_IN_GGA(X2, X1)
REDUCEA_IN_GGA(.(97, X1), 97) → REDUCEA_IN_GGA(X1, 97)
REDUCEA_IN_GGA(.(101, X1), 101) → REDUCEA_IN_GGA(X1, 101)
REDUCEA_IN_GGA(.(105, X1), 105) → REDUCEA_IN_GGA(X1, 105)
REDUCEA_IN_GGA(.(111, X1), 111) → REDUCEA_IN_GGA(X1, 111)
REDUCEA_IN_GGA(.(117, X1), 117) → REDUCEA_IN_GGA(X1, 117)
REDUCEA_IN_GGA(.(104, X1), 104) → REDUCEA_IN_GGA(X1, 104)
REDUCEA_IN_GGA(.(119, X1), 119) → REDUCEA_IN_GGA(X1, 119)
REDUCEA_IN_GGA(.(121, X1), 121) → REDUCEA_IN_GGA(X1, 121)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(20) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • REDUCEA_IN_GGA(.(X1, X2), X1) → REDUCEA_IN_GGA(X2, X1)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEA_IN_GGA(.(97, X1), 97) → REDUCEA_IN_GGA(X1, 97)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEA_IN_GGA(.(101, X1), 101) → REDUCEA_IN_GGA(X1, 101)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEA_IN_GGA(.(105, X1), 105) → REDUCEA_IN_GGA(X1, 105)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEA_IN_GGA(.(111, X1), 111) → REDUCEA_IN_GGA(X1, 111)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEA_IN_GGA(.(117, X1), 117) → REDUCEA_IN_GGA(X1, 117)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEA_IN_GGA(.(104, X1), 104) → REDUCEA_IN_GGA(X1, 104)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEA_IN_GGA(.(119, X1), 119) → REDUCEA_IN_GGA(X1, 119)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

  • REDUCEA_IN_GGA(.(121, X1), 121) → REDUCEA_IN_GGA(X1, 121)
    The graph contains the following edges 1 > 1, 1 > 2, 2 >= 2

(21) YES